<!-- 蓝色简洁登录页面 -->
<template>
	<view class="t-login">
		<!-- 页面装饰图片 -->
		<image class="img-a" src="@/static/login/2.png"></image>
		<image class="img-b" src="@/static/login/3.png"></image>
		<!-- 标题 -->
		<view class="t-b">{{ title }}</view>
		<form class="cl">
			<view class="t-a">
				<image src="@/static/login/sj.png"></image>
				<input placeholder-style="color:gray" type="number" name="phone" placeholder="请输入手机号" maxlength="11" v-model="phone" />
			</view>
			<view class="t-a">
				<image src="@/static/login/yz.png"></image>
				<input placeholder-style="color:gray" type="number" name="code" maxlength="6" placeholder="请输入验证码" v-model="yzm" />
				<view v-if="showText" class="t-c" @tap="getCode()">发送短信</view>
				<view v-else class="t-c" style="background-color: #A7A7A7;">重新发送({{ second }})</view>
			</view>
			<button @tap="login()">登 录</button>
		</form>
		<view class="t-f"><text>————— 第三方账号登录 —————</text></view>
		<view class="t-e cl">
			<view class="t-g" @tap="otherLogin('weixin')"><image src="@/static/login/wx.png"></image></view>
			<view class="t-g" @tap="otherLogin('qq')"><image src="@/static/login/qq.png"></image></view>
			<view class="t-g" v-if="platform=='ios'" @tap="otherLogin('apple')"><image src="@/static/login/apple.png"></image></view>
		</view>
		
		<view class="secret">
			<radio-group @change="chooseSecret">
				<radio value="1"></radio>
			</radio-group>
			<view class="secret-text">
				同意
				<text @click="toAgreement">用户协议</text>
				和
				<text @click="toSecret">隐私政策</text>
			</view>
		</view>
	</view>
</template>
<script>
export default {
	/**
	 * 2020年12月1日   李新雷编写（练习）  适用所有app登录
	 * vue版本简洁又美观的登录页面（个人感觉插件市场的登录都不太好看，哈哈 O(∩_∩)O）
	 * 该模板只是登录模板：验证、倒计时等都已经写好，
	 * 如果需要注册（注册可以设计在登录按钮下方），
	 * 直接复制该页面稍微改动即可
	 */
	data() {
		return {
			title: '欢迎回来！', //填写logo或者app名称，也可以用：欢迎回来，看您需求
			second: 60, //默认60秒
			showText: true, //判断短信是否发送
			phone: '', //手机号码
			yzm: '' ,//验证码
			cid: '',
			secret: 0,
			platform: "android",
		};
	},
	onLoad() {
		this.getPlatform()
		uni.getPushClientId({
				success: (res) => {
					this.cid = res.cid
					console.log(this.cid)
				},
				fail(err) {
					console.log(err)
				}
			})
	},
	methods: {
		getPlatform(){
			let that = this
			uni.getSystemInfo({
				success: function (res) {
					if(res.osName == "ios"){
						that.platform = "ios";
					}
				}
			});
		},
		toAgreement(){
			uni.navigateTo({
				url:"/pages/user-agreement/user-agreement"
			})
		},
		toSecret(){
			uni.navigateTo({
				url:"/pages/secret-policy/secret-policy"
			})
		},
		chooseSecret(){
			this.secret = 1;
		},
		//当前登录按钮操作
		login() {
			// if(this.secret != 1){
			// 	uni.showToast({ title: '请先同意下方的隐私政策', icon: 'none' });
			// 	return;
			// }
			
			// var that = this;
			// if (!that.phone) {
			// 	uni.showToast({ title: '请输入手机号', icon: 'none' });
			// 	return;
			// }
			// if (!/^[1][3,4,5,7,8,9][0-9]{9}$/.test(that.phone)) {
			// 	uni.showToast({ title: '请输入正确手机号', icon: 'none' });
			// 	return;
			// }
			// if (!that.yzm) {
			// 	uni.showToast({ title: '请输入验证码', icon: 'none' });
			// 	return;
			// }
			//....此处省略，这里需要调用后台验证一下验证码是否正确，根据您的需求来
			this.User.login(
				{
					url: "user/login/codeLogin",
					data:{
						tel: this.phone,
						code: this.yzm,
						cid: this.cid,
						// tel: "18636286990",
						// code: "123456",
						// cid: "1479697956"
					}
				}
			);
		},
		//获取短信验证码
		async getCode() {
			var that = this;
			if (!that.phone) {
				uni.showToast({ title: '请输入手机号', icon: 'none' });
				return;
			}
			if (!/^[1][3,4,5,7,8,9][0-9]{9}$/.test(that.phone)) {
				uni.showToast({ title: '请输入正确手机号', icon: 'none' });
				return;
			}
			
			var interval = setInterval(() => {
				that.showText = false;
				var times = that.second - 1;
				//that.second = times<10?'0'+times:times ;//小于10秒补 0
				that.second = times;
				console.log(times);
			}, 1000);
			setTimeout(() => {
				clearInterval(interval);
				that.second = 60;
				that.showText = true;
			}, 60000);
			// 请求服务器，发送验证码
			let [err,res] = await this.$http.post('user/login/sendCode',{
				tel:this.phone
			});
			console.log(res);
			
			// 请求失败处理
			if(!this.$http.errorCheck(err,res)){
				return;
			}
			uni.showToast({ title: '发送成功', icon:"none" });
		},
		
		otherLogin(provider){
			if(this.secret != 1){
				uni.showToast({ title: '请先同意下方的隐私政策', icon: 'none' });
				return;
			}
			uni.login({
			  provider: provider,
			  success:  (loginRes) => {
				uni.getUserInfo({
				      provider: provider,
				      success:  (infoRes) => {
				        console.log('用户信息为：' + JSON.stringify(infoRes));
						
						let options = {};
						if(provider == 'weixin'){
							options = {
								url:"/login/otherLogin",
								data: {
									provider:provider,
									unionId: infoRes.userInfo.unionId,
									nickName: infoRes.userInfo.nickName,
									gender: infoRes.userInfo.gender,
									avatarUrl:infoRes.userInfo.avatarUrl,
									cid: this.cid
								}
							};
						}else if(provider == 'qq'){
							options = {
								url:"/login/otherLogin",
								data: {
									provider:provider,
									unionId: infoRes.userInfo.openId,
									nickName: infoRes.userInfo.nickname,
									gender: infoRes.userInfo.gender_type,
									avatarUrl:infoRes.userInfo.avatarUrl,
									cid: this.cid
								}
							};
						}else{
							options = {
								url:"/login/otherLogin",
								data: {
									provider:provider,
									unionId: infoRes.userInfo.openId,
									nickName: infoRes.userInfo.fullName.givenName,
									gender: 0,
									avatarUrl:"",
									cid: this.cid
								}
							};
						}
						
						this.User.login(options);
				      }
				});
			  },
			  fail(res) {
			  	console.log(res)
			  },
			});
			
		},
	}
};
</script>
<style lang="scss" scoped>
.img-a {
	position: fixed;
	width: 100%;
	top: -280rpx;
	right: -100rpx;
}
.img-b {
	position: fixed;
	width: 50%;
	bottom: 0;
	left: -50rpx;
	margin-bottom: -200rpx;
	z-index: -1;
}
.t-login {
	width: 600rpx;
	margin: 0 auto;
	font-size: 28rpx;
	color: #000;
}

.t-login button {
	font-size: 28rpx;
	background: #5677fc;
	color: #fff;
	height: 90rpx;
	line-height: 90rpx;
	border-radius: 50rpx;
	box-shadow: 0 5px 7px 0 rgba(86, 119, 252, 0.2);
}

.t-login input {
	padding: 0 20rpx 0 120rpx;
	height: 90rpx;
	line-height: 90rpx;
	margin-bottom: 50rpx;
	background: #f8f7fc;
	border: 1px solid #e9e9e9;
	font-size: 28rpx;
	border-radius: 50rpx;
}

.t-login .t-a {
	position: relative;
}

.t-login .t-a image {
	width: 40rpx;
	height: 40rpx;
	position: absolute;
	left: 40rpx;
	top: 28rpx;
	border-right: 2rpx solid #dedede;
	padding-right: 20rpx;
}

.t-login .t-b {
	text-align: left;
	font-size: 46rpx;
	color: #000;
	padding: 300rpx 0 120rpx 0;
	font-weight: bold;
}

.t-login .t-c {
	position: absolute;
	right: 22rpx;
	top: 22rpx;
	background: #5677fc;
	color: #fff;
	font-size: 24rpx;
	border-radius: 50rpx;
	height: 50rpx;
	line-height: 50rpx;
	padding: 0 25rpx;
}

.t-login .t-d {
	text-align: center;
	color: #999;
	margin: 80rpx 0;
}

.t-login .t-e {
	text-align: center;
	width: 250rpx;
	margin: 40rpx auto 0;
	display: flex;
}

.t-login .t-g {
	float: left;
	width: 50%;
}

.t-login .t-e image {
	width: 50rpx;
	height: 50rpx;
}

.t-login .t-f {
	text-align: center;
	margin: 200rpx 0 0 0;
	color: #666;
}

.t-login .t-f text {
	margin-left: 20rpx;
	color: #aaaaaa;
	font-size: 27rpx;
}

.t-login .uni-input-placeholder {
	color: #000;
}

.cl {
	zoom: 1;
}

.cl:after {
	clear: both;
	display: block;
	visibility: hidden;
	height: 0;
	content: '\20';
}
.secret{
	text-align: center;
}
.secret-text{
	display: inline;
	text-align: center;
	line-height: 100%;
	color: #aaaaaa;
	font-size: 27rpx;
	text{
		color: #5677fc;
	}
}
radio-group{
	display: inline;
}
radio{
	transform:scale(0.7)
}
</style>
